Billiard-ball computer

From HandWiki
Short description: Type of conservative logic circuit
Fredkin and Toffoli billiard ball model of an AND gate. When a single billiard ball arrives at the gate through input 0-in or 1-in, it passes through the device unobstructed and exits via 0-out or 1-out. However, if a 0-in billiard ball arrives simultaneously as a 1-in billiard ball, they collide with each other in the upper-left-hand corner of the device and redirect each other to collide again in the lower-right-hand corner of the device. One ball then exits via 1-out and the other ball exits via the lower AND-output. Thus, the presence of a ball being emitted from the AND-output is logically consistent with the output of an AND gate that takes the presence of a ball at 0-in and 1-in as inputs.

A billiard-ball computer, a type of conservative logic circuit, is an idealized model of a reversible mechanical computer based on Newtonian dynamics, proposed in 1982 by Edward Fredkin and Tommaso Toffoli.[1] Instead of using electronic signals like a conventional computer, it relies on the motion of spherical billiard balls in a friction-free environment made of buffers against which the balls bounce perfectly. It was devised to investigate the relation between computation and reversible processes in physics.

Simulating circuits with billiard balls

This model can be used to simulate Boolean circuits in which the wires of the circuit correspond to paths on which one of the balls may travel, the signal on a wire is encoded by the presence or absence of a ball on that path, and the gates of the circuit are simulated by collisions of balls at points where their paths cross. In particular, it is possible to set up the paths of the balls and the buffers around them to form a reversible Toffoli gate, from which any other Boolean logic gate may be simulated. Therefore, suitably configured billiard-ball computers may be used to perform any computational task.[2]

Simulating billiard balls in other models of computation

It is possible to simulate billiard-ball computers on several types of reversible cellular automaton, including block cellular automata and second-order cellular automata. In these simulations, the balls are only allowed to move at a constant speed in an axis-parallel direction, assumptions that in any case were already present in the use of the billiard ball model to simulate logic circuits. Both the balls and the buffers are simulated by certain patterns of live cells, and the field across which the balls move is simulated by regions of dead cells, in these cellular automaton simulations.[3]

Logic gates based on billiard-ball computer designs have also been made to operate using live soldier crabs of the species Mictyris guinotae in place of the billiard balls.[4][5][6]

See also

References

  1. "Conservative logic", International Journal of Theoretical Physics 21 (3–4): 219–253, 1982, doi:10.1007/BF01857727, Bibcode1982IJTP...21..219F .
  2. Durand-Lose, Jérôme (2002), "Computing inside the billiard ball model", in Adamatzky, Andrew, Collision-Based Computing, Springer-Verlag, pp. 135–160, doi:10.1007/978-1-4471-0129-1_6, ISBN 978-1-4471-0129-1 .
  3. "Physics-like models of computation", Physica D: Nonlinear Phenomena 10 (1–2): 81–95, 1984, doi:10.1016/0167-2789(84)90252-5, Bibcode1984PhyD...10...81M . Reprinted in Theory and Applications of Cellular Automata, Advanced series on complex systems, 1, World Scientific, 1986, pp. 232–246, Bibcode1986taca.book.....W .
  4. Gunji, Yukio-Pegio; Nishiyama, Yuta (2011), "Robust Soldier Crab Ball Gate", Complex Systems 20 (2): 93–104, doi:10.25088/ComplexSystems.20.2.93, Bibcode2012arXiv1204.1749G, http://www.complex-systems.com/abstracts/v20_i02_a02.html .
  5. Solon, Olivia (April 14, 2012), "Computer Built Using Swarms Of Soldier Crabs", Wired, https://www.wired.com/wiredenterprise/2012/04/soldier-crabs/ .
  6. Aron, Jacob (April 12, 2012), "Computers powered by swarms of crabs", New Scientist, https://www.newscientist.com/blogs/onepercent/2012/04/researchers-build-crab-powered.html .